package com.nbcio.modules.erp.coupon.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 优惠券
 * @Author: nbacheng
 * @Date:   2024-04-16
 * @Version: V1.0
 */
@Data
@TableName("mall_coupon")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="mall_coupon对象", description="优惠券")
public class MallCoupon implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
	/**优惠券编码*/
	@Excel(name = "优惠券编码", width = 15)
    @ApiModelProperty(value = "优惠券编码")
    private java.lang.String code;
	/**优惠券类型*/
	@Excel(name = "优惠券类型", width = 15, dicCode = "coupon_type")
	@Dict(dicCode = "coupon_type")
    @ApiModelProperty(value = "优惠券类型")
    private java.lang.String type;
	/**优惠券金额/折扣比例*/
	@Excel(name = "优惠券金额/折扣比例", width = 15)
    @ApiModelProperty(value = "优惠券金额/折扣比例")
    private java.math.BigDecimal amount;
	/**最低消费金额门槛*/
	@Excel(name = "最低消费金额门槛", width = 15)
    @ApiModelProperty(value = "最低消费金额门槛")
    private java.math.BigDecimal minOrderAmount;
	/**优惠券生效开始日期*/
	@Excel(name = "优惠券生效开始日期", width = 15)
    @ApiModelProperty(value = "优惠券生效开始日期")
    private java.util.Date startDate;
	/**优惠券失效日期*/
	@Excel(name = "优惠券失效日期", width = 15)
    @ApiModelProperty(value = "优惠券失效日期")
    private java.util.Date endDate;
	/**发行总量*/
	@Excel(name = "发行总量", width = 15)
    @ApiModelProperty(value = "发行总量")
    private java.math.BigDecimal totalQuantity;
	/**剩余数量*/
	@Excel(name = "剩余数量", width = 15)
    @ApiModelProperty(value = "剩余数量")
    private java.math.BigDecimal remainingQuantity;
	/**已使用数量*/
	@Excel(name = "已使用数量", width = 15)
    @ApiModelProperty(value = "已使用数量")
    private java.math.BigDecimal usedQuantity;
	/**单用户限领数量*/
	@Excel(name = "单用户限领数量", width = 15)
    @ApiModelProperty(value = "单用户限领数量")
    private java.math.BigDecimal maxPerUser;
	/**适用商品分类id*/
	@Excel(name = "适用商品分类id", width = 15)
    @ApiModelProperty(value = "适用商品分类id")
    private java.lang.String targetCategoryId;
	/**使用商品分类名称*/
	@Excel(name = "使用商品分类名称", width = 15)
    @ApiModelProperty(value = "使用商品分类名称")
    private java.lang.String targetCategoryName;
	/**适用商品id*/
	@Excel(name = "适用商品id", width = 15)
    @ApiModelProperty(value = "适用商品id")
    private java.lang.String targetProductId;
	/**适用商品名称*/
	@Excel(name = "适用商品名称", width = 15)
    @ApiModelProperty(value = "适用商品名称")
    private java.lang.String targetProductName;
	/**优惠券状态*/
	@Excel(name = "优惠券状态", width = 15, dicCode = "coupon_status")
	@Dict(dicCode = "coupon_status")
    @ApiModelProperty(value = "优惠券状态")
    private java.lang.String status;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
	/**创建日期*/
    @ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
	/**更新日期*/
    @ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private java.lang.String sysOrgCode;
}
